import request from '@/utils/request'

/**
 * 获取评论分页列表
 * @param {Object} params - 查询参数
 * @param {number} params.current - 当前页码
 * @param {number} params.size - 每页大小
 * @param {string} [params.content] - 评论内容(模糊查询)
 * @param {number[]} [params.userIdList] - 用户ID列表
 * @param {string} [params.createTimeStart] - 创建开始时间
 * @param {string} [params.createTimeEnd] - 创建结束时间
 * @param {string} [params.status] - 状态(0-正常，1-已删除)
 * @param {string} [params.isApproved] - 审核状态(0-未审核，1-已通过，2-未通过)
 * @param {number} [params.photoId] - 照片ID
 * @param {string} [params.orderBy] - 排序字段(create_time/like_count)
 * @param {boolean} [params.desc] - 是否降序
 * @returns {Promise}
 */
export function getCommentPage(params) {
  // 过滤掉undefined的参数
  const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {
    if (value !== undefined && value !== null) {
      acc[key] = value
    }
    return acc
  }, {})

  return request({
    url: '/v1/comment/page',
    method: 'get',
    params: filteredParams
  })
}

/**
 * 审核评论
 * @param {number} commentId - 评论ID
 * @param {Object} data - 审核数据
 * @param {number} data.isApproved - 审核状态(0-未审核，1-已通过，2-未通过)
 * @returns {Promise}
 */
export function approveComment(commentId, data) {
  return request({
    url: `/v1/comment/${commentId}/approve`,
    method: 'put',
    data
  })
}

/**
 * 批量审核评论
 * @param {Object} data - 批量审核数据
 * @param {number[]} data.commentIds - 评论ID列表
 * @param {number} data.isApproved - 审核状态(0-未审核，1-已通过，2-未通过)
 * @returns {Promise}
 */
export function batchApproveComments(data) {
  return request({
    url: '/v1/comment/approve/batch',
    method: 'put',
    data
  })
}

/**
 * 删除评论
 * @param {number} commentId - 评论ID
 * @returns {Promise}
 */
export function deleteComment(commentId) {
  return request({
    url: '/v1/comment/wechat',
    method: 'delete',
    params: { commentId }
  })
}

/**
 * 批量删除评论
 * @param {Object} data - 批量删除数据
 * @param {number[]} data.commentIds - 评论ID列表
 * @returns {Promise}
 */
export function batchDeleteComments(data) {
  return request({
    url: '/v1/comment/batch',
    method: 'delete',
    data
  })
}

/**
 * 获取评论详情
 * @param {number} commentId - 评论ID
 * @returns {Promise}
 */
export function getCommentDetail(commentId) {
  return request({
    url: `/v1/comment/${commentId}`,
    method: 'get'
  })
}

// 发表评论
export function addComment(photoId, content) {
  return request({
    url: `/v1/comment/${photoId}`,
    method: 'post',
    data: {
      content
    }
  })
}

// 获取评论列表
export function getCommentList(photoId) {
  return request({
    url: `/v1/comment/${photoId}`,
    method: 'get'
  })
} 